﻿using System;
using System.IO;
using System.Data;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

using Mono.Data.Sqlite;

namespace VisualTrain
{
	[Activity (Label = "Визуализация обучения", MainLauncher = true, Icon = "@drawable/icon")]
	public class MainActivity : Activity
	{
		Student s;
		EditText Name, Password;
		Button Auth;

		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);

			// Устанавливаем отображаемый слой
			SetContentView (Resource.Layout.Main);

			// Присваеваем переменные
			Name = FindViewById<EditText> (Resource.Id.Name);					// Логин пользователя
			Password = FindViewById<EditText> (Resource.Id.Password);			// Пароль пользователя
			Auth = FindViewById<Button> (Resource.Id.authorization);	// Кнопка авторизации

			Toast.MakeText ( ApplicationContext, "Введите 'a', чтобы продолжить работу.\nОтладочная запись", ToastLength.Long ).Show();

			Auth.Text = "Войти";
			// Проверяем наличие базы данных
			if (!File.Exists (DataBase.dbPath))
				// В случае отсутствия копируем базу из .apk
				Start ();

			// Обрабатываем нажатие кнопки авторизации
			Auth.Click += (object sender, EventArgs e) =>
			{
				switch ( Name.Text )
				{
					case "User1":
						s = new Student ( "1152" );
					break;
					case "a":
						new Student ( "1150" );
						StartActivity ( new Intent ( this, typeof ( Predmets ) ) );
					break;
					// Все остальные варианты логина ведут к рисованию графиков
					default:
					break;
				}
			};
		}

		// Копирование базы данных из .apk
		private void Start()
		{
			using (BinaryReader br = new BinaryReader(Assets.Open(DataBase.NameDB)))
			{
				// Копируем файл базы данных из .apk на устройство
				using (BinaryWriter bw = new BinaryWriter(new FileStream(DataBase.dbPath, FileMode.Create)))
				{
					byte[] buffer = new byte[2048];
					int len = 0;
					while ((len = br.Read(buffer, 0, buffer.Length)) > 0)
					{
						bw.Write (buffer, 0, len);
					}
				}
			}
		}
	}
}


